#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlQuery>    //数据库操作命令相关
#include <QPushButton>
#include <QtDebug>
#include <QMouseEvent>
#include <QTimer>
#include<QSqlError>
#include<QVBoxLayout>
#include<QPixmap>
#include<QHBoxLayout>
#include<QLabel>        //标签
#include<QLineEdit>     //文本编辑器
#include<QCheckBox>     //复选框
#include <QRect>
#include  <QString>
#include <QSoundEffect>
#include <QMediaPlayer> //音效相关，需要在.pro中添加模块
// #include <QMediaPlaylist>
#include <QUrl>
#include <QToolButton>


#include "manageface.h"
#include "resetpassword.h"


QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE


class loginViewWidget : public QWidget
{
    Q_OBJECT

public:
    loginViewWidget(QWidget *parent = nullptr);
    ~loginViewWidget();

private:
    Ui::Widget *ui;

    QPoint oldPos; // 在类的私有成员中定义 oldPos

    //数据库链接对象
    QSqlDatabase db;

    //关闭按钮
    QPushButton *shutdownBtn;
    //最小化按钮
    QPushButton *minimizeBtn;


    //主布局
    QHBoxLayout *mainLayout;

    //左边的布局
    QWidget *leftWidget;
    //左侧垂直
    QVBoxLayout *leftLogoLayout;

    //左侧图片
    QLabel *leftLabel;

    //右侧的布局容器
    QGroupBox *rightWidget;
    //右侧垂直
    QVBoxLayout *RightLayout;

    //标题和副标题
    QLabel *titleLabel;
    QLabel *subTitleLabel;

    //用户名输入框
    QLineEdit *userNameEdit;

    //密码输入框
    QLineEdit *passWordEdit;

    QHBoxLayout *userNameLayout;
    QHBoxLayout *passwordLayout;

    //水平
    QHBoxLayout *checkBoxLayout;
    //记住密码和忘记密码
    QCheckBox *rememberCheckBox;
    QPushButton *forgetBtn ;

    //密码输入框中的显示密码
    QToolButton *showButton;

    //重置密码
    resetPassWord* resetPass;

    //错误提示
    QLabel * msg;

    //是否选择记住密码
    bool flag;

    //登录按钮
    QPushButton* loginButton;


    //登录界面用户名
    QString username;
    //登录界面密码
    QString password;
    //登录播放音
    QMediaPlayer *loginMp3;

    //初始化
    void init();

    //获取链接
    void getConnect();



private slots:
    void on_shutdownBtn_clicked();

    void on_minimizeBtn_clicked();

    //登录按钮单击事件
    void on_login_clicked();
    //重置密码单击事件
    void on_reSetPass_clicked();



protected:
    void mousePressEvent(QMouseEvent *event) override;
    void mouseMoveEvent(QMouseEvent *event) override;

    // 用户名输入框失去焦点事件
    void on_userNameEdit_lostFocus();

    //按下回车键登录
    void keyPressEvent(QKeyEvent* event);

};
#endif // WIDGET_H
